Method and System for Constructing Corner Models for Multiple Performance Targets

ABSTRACT

A method, system and article of manufacture are disclosed for constructing corner models for multiple performance targets for circuit simulations. The method includes identifying N (N≧2) device and/or circuit performance targets F 1 , F 2 , . . . , F N , and obtaining their correlation matrix R using Monte Carlo simulations, analyzing measured hardware data, or using the linear sensitivities of the N targets on M statistical model parameters; b) calculating a normalized joint probability density (JPD); and c) when η 1 , . . . , η N  values are already set (each η i , takes only one value), proceeding to build a common and optimal corner for the N targets when p(N)≧p th (N). The method further includes constructing corner models to cover both lower and upper bounds of 1 st  performance target to cover both lower and upper bounds of N th  performance target; and e) determining for each set of I(1≦I≦N) targets an optimal common corner solution for each corner by maximizing a normalized JPD among all possible common corner solutions for that comer.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention generally relates to computer-aided design of electroniccircuits, and more specifically, the invention relates to constructingcorner models for multiple performance targets.

2. Background Art

Computer aids for electronic circuit designers are becoming more andmore popular. Examples of these computer aids include electronic circuitsimulators such as the Simulation Program with Integrated CircuitEmphasis (SPICE) developed at the University of California, Berkeley (UCBerkeley), and various enhanced versions or derivatives of SPICE, suchas, SPICE2 or SPICE3, HSPICE, PSPICE, and SPECTRE.

An electronic circuit may contain circuit elements such as resistors,capacitors, inductors, mutual inductors, transmission lines, diodes,bipolar junction transistors (BJT), junction field effect transistors(JFET), and metal-on-silicon field effect transistors (MOSFET), etc. ASPICE circuit simulator is a program that simulates the performance ofelectronic circuits. SPICE solves sets of non-linear differentialequations in the frequency domain, steady state and time domain and cansimulate the behavior of transistor and gate designs. In SPICE, acircuit is handled in a node/element fashion, i.e., the circuit isregarded as a collection of various elements (transistors, resistors,capacitors, etc.) and the elements are connected at nodes. Thus, eachelement must be modeled in order to simulate the entire circuit. MostSPICE circuit simulators have built in models for modeling semiconductordevices, and are set up so that the user need only specify modelparameter values associated with the models.

Whether it is built-in or plug-in, a device model for a SPICE circuitsimulator typically includes model equations and a set of modelparameters, which are used to mathematically represent devicecharacteristics of a device element under various bias conditions. Forexample, for a MOSFET device model, in DC and AC analysis, the inputs ofthe device model are the drain-to-source, gate-to-source, bulk-to-sourcevoltages, and the device temperature, and the outputs are the variousterminal currents. Therefore, the model parameters, along with the modelequations in the device model, directly affect the final outcome of theterminal currents.

Compact/Spice models typically support Monte Carlo simulations. Toreduce simulation time, however, it is desirable to also have a cornermodel. The corner model refers to a model wherein some of the varyingelectrical characteristics of a device show a lower frequency ofoccurrence than statistical typical values (average values, medianvalues and the like) are expressed as corners, which define the limitsof the variations. At the corners, to what extent the variations inmodel parameters and process parameters are tolerated is calculated.

Often it is desirable to find a common corner for multiple performancetargets. For example, in FET corner models, a corner to meet both draincurrent and threshold voltage corner conditions at both short and longchannel lengths. In a corner model aimed at circuit performance targets,it is desirable to have a common corner model for multiple logic gates,like ring oscillator, NAND, NOR, etc.

In another example, there are N₁ logic circuits/standard cells and, foreach one, there is a 3-σ maximum delay requirement and a 3-σ maximumpower/leakage requirement. We want to build a set of corner models tosatisfy a total of N=2N₁ requirements. This can be done by (i) buildingN separate corner models (one corner model to cover one corner), (ii)building one common corner model to cover all N corners, or (iii)building J(1<J<N) corner models (1^(st) corner model covers n₁ corners,2^(nd) corner model covers another n₂ corners, . . . , n₁+n₂+ . . .+n_(J)=N). If successful and acceptable, (ii) is the most desirablesolution and (i) is the least desirable solution. However, for (ii),there may not be a proper solution for such a common corner. Or, ifthere is a common corner, its probability can be too small. So theproblem here is: How to decide how many corner models are needed in thesuite of corner solution. Important considerations are, for each cornermodel in the suite of corner solution which of several performancecorners to cover, and what criteria should be used to make such adecision.

In yet another example involving delay difference among different logiccircuits (or among different paths), there are I logic circuits/standardcells and, for each one, there are both 3-σ maximum delay requirementand a 3-σ minimum delay requirement. We want to build a set of cornermodels to cover a total of N=2I performance corners. In such an example,we have the freedom to choose the combinations of one circuit's maximumdelay corner with another circuit's either maximum or minimum delaycorner and build a common corner model to satisfy the chosen cornerssimultaneously. This can be done by (i) building N separate cornermodels (one corner model to cover one corner), or (ii) building J(1<J<N)corner models (1^(st) corner model covers n₁ corners, 2^(nd) cornermodel covers another n₂ corners, . . . , n₁+n₂+ . . . +n_(J)=N). Ifsuccessful and acceptable, the smaller the number (J) of the cornermodel is, the better the corner solution is. Again, the problem here is:How to decide how many corner models are needed in the suite of cornersolution. Important issues are, for each corner model in the suite ofcorner solution, how do we choose a proper combination among maximum andminimum performance corners, and what criteria should be used to makesuch a decision.

SUMMARY OF THE INVENTION

A method of an embodiment of the invention includes the steps of (a)identifying N(N≧2) device and/or circuit performance targets F₁, F₂, . .. , F_(N), and obtaining their correlation matrix R using Monte Carlosimulations, analyzing measured hardware data, or using the linearsensitivities of the N targets on M statistical model parameters; (b)calculating a normalized joint probability density (JPD); and (c) whenη₁, . . . , η_(N) values are already set (each η_(j), takes only onevalue), proceeding to build a common and optimal corner for N targetswhen p(N)≧p_(th)(N). The method includes the further steps of (d)constructing corner models to cover both lower and upper bounds of1^(st) performance target to cover both lower and upper bounds of N^(th)performance target; and (e) determining for each set of I(1≦I≦N) targetsan optimal common corner solution for each corner by maximizing anormalized JPD among all possible common corner solutions for thatcorner.

In a preferred embodiment of the invention, the step of proceeding tobuild a common and optimal corner includes the steps of finding alargest set of (I) targets which has highest p(I) among C_(N)^(I)=N!/[(N−I)!I!] combination of I targets and also satisfiesp(I)≧p_(th)(I), then proceeding to build a common and optimal corner forset of I targets, when p(N)≦p_(th)(N) and task is to find one corner tocover as many targets as possible, and finding smallest number of (J)corners which can cover all N targets collectively. Also, in thispreferred embodiment, the smallest number of corners may be found byfinding a best allocation of N targets into J groups (I₁+I₂+ . . .+I_(J)=N), and having p(I_(j))≧p_(th)(I_(j)) for each group; and afterfinding this best allocation, proceeding to build one common and optimalcorner for each group of performance targets, when p(N)<p_(th)(N) andtask is to cover all N targets.

The preferred embodiment of the invention, described below in detail,provides a number of important advantages. This embodiment of theinvention provides a methodology to construct corner models for multipleperformance targets. The invention gives a specific method of decidingfor how many performance targets to construct a common corner. Namely,it provides a method to decide whether a corner model for multipleperformance targets is suitable or not. The invention also provides amethod of deciding for which several performance targets to construct acommon corner, i.e., a method to select proper combinations among theupper and lower bounds of multiple performance targets.

More specifically, when a task is to build a corner model for multipleperformance targets and, for each performance target, whether its corneris a lower or upper bound has also been specified, the inventionprovides (1a) an explicit expression for judging whether a suitablecommon corner exists or not. If there is not a suitable common corner,the invention further provides (1b) a method on how to find a cornersolution in this case, and after (1a) and (1b), the invention furtherprovides (1c) an optimal set corner models to satisfy the given multipleperformance targets.

When a task is to build a set of corner models for multiple performancetargets and, for each performance target, both its lower and upperbounds must be covered by the corner models, the invention provides (2a)an explicit expression to select proper combinations among the upper andlower bounds of multiple performance targets, and after (2a), theinvention provides (2b) an optimal set of corner models to satisfy thegiven multiple performance targets. This optimal set of corner modelsachieves optimal combinations of the lower and upper bounds among themultiple performance targets.

In (1a), (1b), or in (2a), all that are needed are the correlationcoefficients among multiple performance targets. Such correlationcoefficients can be obtained in various ways, including running MonteCarlo simulations (in this approach, one does not need to know thenumber and/or names of statistical model parameters in the used SPICEmodel set, and does not need knowing the specific values of thesensitivities of any performance target on any statistical modelparameters). In (1c) or in (2b), the invention preferably makes use ofspecific corner model solutions, which use the sensitivities of eachperformance target on statistical model parameters.

Further benefits and advantages of this invention will become apparentfrom a consideration of the following detailed description, given withreference to the accompanying drawings, which specify and show preferredembodiments of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a flow chart showing steps of a preferred embodiment of thisinvention.

FIG. 2 illustrates a geometric interpretation on correlation coefficientr_(ij) among k=1, 2, . . . , N performance targets.

FIG. 3 shows a geometric interpretation on a specified relation amongcorrelation coefficients.

FIG. 4 shows a geometric interpretation on a second relation amongcorrelation coefficients.

FIG. 5 shows a geometric interpretation on a third relation amongcorrelation coefficients.

FIG. 6 illustrates a geometric interpretation on a fourth relation amongcorrelation coefficients.

FIG. 7 illustrates a principal that the more correlated a pair oftargets, the larger the normalized joint probability density (JPD).

FIG. 8 illustrates a principal that when two correlation coefficientsincrease, the “distance squared” decreases.

FIG. 9 shows the behavior that when a value r₁₂ increases, the distancebetween a common corner and a center O first decreases and thenincreases.

FIG. 10 illustrates a contour of (η^(T)·R⁻¹·η) in (r₁₂, r₂₃) plane whenr₁₃=0 and η₁=η₂=η₃.

FIG. 11 shows changes in “distance squared” vs. r₁₂ when r₁₂=r₂₃ andη₁=η₂=Θ₃.

FIG. 12 shows common corners for a pair of negatively correlatedtargets.

FIG. 13 illustrates a computing environment in which the presentinvention may be implemented.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present invention, generally, provides a methodology to constructcorner models for multiple performance targets. The invention gives aspecific method of deciding for how many performance targets toconstruct a common corner. Namely, it provides a method to decidewhether a corner model for multiple performance targets is suitable ornot. The invention also provides a specific method of deciding for whichseveral performance targets to construct a common corner, i.e., a methodto select proper combinations among the upper and lower bounds ofmultiple performance targets.

With a preferred embodiment of the invention, when a task is to build acorner model for multiple performance targets and, for each performancetarget, whether its corner is a lower or upper bound has also beenspecified, the invention provides (1a) an explicit expression forjudging whether a suitable common corner exists or not. If there is nota suitable common corner, the invention further provides (1b) a methodon how to find a corner solution in this case, and after (1a) and (1b),the invention further provides (1c) an optimal set corner models tosatisfy the given multiple performance targets.

When a task is to build a set of corner models for multiple performancetargets and, for each performance target, both its lower and upperbounds must be covered by the corner models, the invention provides (2a)an explicit expression to select proper combinations among the upper andlower bounds of multiple performance targets, and after (2a), theinvention provides (2b) an optimal set of corner models to satisfy thegiven multiple performance targets. This optimal set of corner modelsachieves optimal combinations of the lower and upper bounds among themultiple performance targets.

In (1a), (1b), or in (2a), all that are needed are the correlationcoefficients among multiple performance targets. Such correlationcoefficients can be obtained in various ways, including running MonteCarlo simulations (in this approach, one does not need to know thenumber and/or names of statistical model parameters in the used SPICEmodel set, and does not need to know the specific values of thesensitivities of any performance target on any statistical modelparameters).

The steps of the preferred embodiment are shown in FIG. 1 and describedbelow with some examples.

Step 12 is to identify a set of device and/or circuit performancetargets. We denote the number of targets as N(N≧2) and represent Nperformance targets by F₁, F₂, . . . , F_(N). Step 14 is to decide thevalue K of a wanted corner for each performance target. For example, K=3for a 3-σ corner value. Other K values could be 1, 2, 4, 5, 6, etc. For1% or 99% accumulated probability, |K|=2.3; for 5% or 95% accumulatedprobability, |K|=1.6; for 10% or 90% accumulated probability, |K|=1.3.Step 16 is to, for each performance target F_(i), assign η₁=+1 for theK-σ upper corner, and/or assign η_(i)=−1 for the K-σ lower corner. Theaccumulated probability of an upper corner is larger than 50%, and theaccumulated probability of a lower corner is smaller than 50%.

Step 20 is to obtain all linear correlation coefficients among N circuitperformance targets. The linear correlation coefficient between thei^(th) and k^(th) targets is

$\begin{matrix}{{r_{ik} = {r_{ki} = \frac{\langle{\left( {F_{i} - {\langle F_{i}\rangle}} \right)\left( {F_{k} - {\langle F_{k}\rangle}} \right)}\rangle}{S_{i}S_{k}}}},i,{k = 1},2,\ldots \mspace{11mu},N,} & (1.1)\end{matrix}$

where <F_(i)> is the average value of the i^(th) performance targetF_(i), and S_(i) is the standard deviation of the i^(th) performancetarget F_(i),

$\begin{matrix}{{S_{i} = {\sqrt{\langle\left( {F_{i} - {\langle F_{i}\rangle}} \right)^{2}\rangle} = \sqrt{{\langle F_{i}^{2}\rangle} - {\langle F_{i}\rangle}^{2}}}},{i = 1},2,\ldots \mspace{11mu},{N.}} & (1.2)\end{matrix}$

From Eqs. (1.1) and (1.2), it is easy to see that each diagonal elementis unity,

r=1, i=1, 2, . . . , N.   (1.3)

The number of (independent) correlation coefficients r_(ij) among Nperformance targets is N(N−1)/2. The value of an off-diagonal element isbounded in both directions,

−1≦r_(ik)≦1, i,k=1, 2, . . . , N, i≠k.   (1.4)

A geometric explanation of equation (1.4) which is presented in FIG. 2.To help the explanation, we introduce a normalized variation for eachperformance target F_(i),

$\begin{matrix}{{{df}_{i} = \frac{F_{i} - {\langle F_{i}\rangle}}{S_{i}}},{i = 1},2,\ldots \mspace{11mu},{N.}} & (1.5)\end{matrix}$

It is easy to see that the mean value of df_(i) vanishes,

<df_(i)>=0, i=1, 2, . . . , N.   (1.6)

Using Eq. (1.2), we also see that

<df_(i)·df_(i)>=1, i=1, 2, . . . , N,   (1.7)

i.e., each of df_(i) can be regarded as a unit vector geometrically.Now, the linear correlation coefficient in Eq. (1.1) can be recast intoa much simpler form,

r_(ik)=r_(ki)=<df_(i)·df_(k)>, i,k=1, 2, . . . , N.   (1.8)

One method of obtaining linear correlation coefficients is by runningMonte Carlo simulations. Another method of obtaining linear correlationcoefficients is to use the linear sensitivities of performance targetswith respect to statistical model parameters. Explicit formula is givenin Eq. (3.11) below. Still another method of obtaining linearcorrelation coefficients is to use the analytic expressions for therelationship between targets and statistical model parameters. Examplesinclude the resistance of a poly or diffused resistor, and thecapacitance of metal-insulator-metal capacitor.

Step 22 of FIG. 1 is to check the consistency of all linear correlationcoefficients, and make adjustments if necessary. In the presence ofother correlation coefficients, the value of a particular correlationcoefficient is usually further restricted than (1.4) to within a smallerrange. For example, when r₁₃=0 (i.e., when df₁ and df₃ are orthogonal toeach other), r₁₂ and r₂₃ are bounded within a unit circle,

$\begin{matrix}{{{r_{12}^{2} + r_{23}^{2}} \leq 1},{{{when}\mspace{14mu} r_{13}} = 0}} & (1.9)\end{matrix}$

A geometric explanation of inequality (1.9) is given in FIG. 3. Inanother example, for an arbitrarily given r₁₃, if r₁₂ and r₂₃ are equal(i.e., if the angle between df₁ and df₂ and the angle between df₂ anddf₃ are the same), then they obey the following relation,

$\begin{matrix}{{r_{12}^{2} = {r_{23}^{2} \leq {\frac{1}{2}\left( {1 + r_{13}} \right)}}},{{{when}\mspace{14mu} r_{12}} = {r_{23}.}}} & (1.10)\end{matrix}$

A geometric explanation of inequality (1.10) is presented in FIG. 4. Ina third example, when r₁₃ is one (i.e., when df₁ and df₃ are completelypositively correlated), then r₁₂ and r₂₃ must be equal (i.e., the anglebetween df₁ and df₂ and the angle between df₂ and df₃ must be equal),

r₁₂=r₂₃, when r₁₃=1.   (1.11)

A geometric explanation of Eq. (1.11) is given in FIG. 5. Mostgenerally, any three correlation coefficients r₁₂(=a), r₁₃(=b), andr₂₃(=c) satisfy the following inequality,

Δ≧0,   (1.12)

where

Δ|1+2abc−(a ² +b ² +c ²).   (1.13)

A geometric explanation of inequality (1.12) is given in FIG. 6.

Step 24 is to introduce an N-component vector to represent N η_(i)collectively,

$\begin{matrix}{\eta = {\begin{pmatrix}\eta_{1} \\\eta_{2} \\\vdots \\\eta_{N}\end{pmatrix}.}} & (1.14)\end{matrix}$

Step 26 is to introduce an N×N symmetric matrix to represent linearcorrelation coefficients collectively,

$\begin{matrix}{{R = {\begin{pmatrix}r_{11} & r_{12} & \ldots & r_{1N} \\r_{21} & r_{22} & \ldots & r_{2N} \\\vdots & \vdots & \ddots & \vdots \\r_{N\; 1} & r_{N\; 2} & \ldots & r_{NN}\end{pmatrix} = R^{T}}},} & (1.15)\end{matrix}$

and then find its inverse R⁻¹.

Step 30 is to use the following normalized joint probability density(JPD) to judge whether there exists a suitable common corner for the Nmultiple targets,

$\begin{matrix}{p = {{\exp \left( {{- \frac{1}{2}}K^{2}{\eta^{T} \cdot R^{- 1} \cdot \eta}} \right)}.}} & (2.1)\end{matrix}$

The explicit solution of a common corner is not needed here. Also, thenumber of statistical model parameters is not used in (2.1), and theknowledge of which are those statistical model parameters is not used.The inner product η^(T)·R⁻¹·η is actually the square of an optimalcorner solution vector, and we will call it “distance squared”. When allη_(i)'s change their signs, the JPD has the same value,

p(η₁, 72 ₂, . . . , η_(N))=p(−η₁, −η₂, . . . , −η_(N)).   (2.2)

When a single η_(i) changes its sign, it has the following property,

p(R; η ₁, η₂, . . . , η_(N))=p(R ₁; −η₁, η₂, . . . , η_(N)),   (2.3a)

with

$\begin{matrix}{R_{1} = {\begin{pmatrix}r_{11} & {- r_{12}} & \ldots & {- r_{1N}} \\{- r_{21}} & r_{22} & \ldots & r_{2N} \\\vdots & \vdots & \ddots & \vdots \\{- r_{N\; 1}} & r_{N\; 2} & \ldots & r_{NN}\end{pmatrix}.}} & \left( {2.3b} \right)\end{matrix}$

A high-bound benchmark value of the normalized JPD is

$\begin{matrix}{p_{\max} = {{\exp \left( {{- \frac{1}{2}}K^{2}} \right)}.}} & (2.4)\end{matrix}$

which occurs when all off-diagonal elements are approaching +1, and allη_(i)'s are equal (either all are +1 or all are −1),

r _(ik)≈+1, i,k=1, 2, . . . , N, i≠k,   (2.5a)

η₁=η₂= . . . =η_(N)=±1, i=1, 2, . . . , N.   (2.5b)

A middle benchmark value (or, say, a threshold value) of the normalizedJPD is

$\begin{matrix}{{p_{th} = {\exp \left( {{- \frac{1}{2}}{NK}^{2}} \right)}},} & (2.6)\end{matrix}$

which occurs when all off-diagonal elements are zero, i.e., when allperformance targets are orthogonal to one another,

i≠k. r_(ik)=0, i,k=1, 2, . . . , N, i≠k.   (2.7)

A low-bound benchmark value of the normalized JPD is

$\begin{matrix}{{p_{\min} = {{\exp \left( {{- \frac{1}{2}} \cdot \left( {+ \infty} \right)} \right)} = 0}},} & (2.8)\end{matrix}$

which occurs when all off-diagonal elements are approaching +1, but someη_(i)'s are +1 and some η_(i)'s are −1,

r _(ik)≅+1, i,k=1, 2, . . . , N, i≠k.   (2.9a)

There exist i and k such that η_(i)≠η_(k), i,k=1, 2, . . . , N, i≠k.  (2.9b)

N=2 case. In the case of two performance targets, the correspondingmatrix is simply

$\begin{matrix}{R = {\begin{pmatrix}1 & r_{12} \\r_{12} & 1\end{pmatrix}.}} & (2.10)\end{matrix}$

Its inverse is

$\begin{matrix}{R^{- 1} = {\frac{1}{1 - r_{12}^{2}}{\begin{pmatrix}1 & {- r_{12}} \\{- r_{12}} & 1\end{pmatrix}.}}} & (2.11)\end{matrix}$

The normalized JPD can be written out explicitly,

$\begin{matrix}{{{p\left( {\eta_{1} = \eta_{2}} \right)} = {{\exp \left( {- \frac{K^{2}\eta_{1}^{2}}{1 + r_{12}}} \right)} = {\exp \left( {- \frac{K^{2}}{1 + r_{12}}} \right)}}},{{{when}\mspace{14mu} \eta_{1}} = {\eta_{2} = {\pm 1}}},} & \left( {2.12a} \right) \\{{{p\left( {\eta_{1} = \eta_{2}} \right)} = {{\exp \left( {- \frac{K^{2}\eta_{1}^{2}}{1 + r_{12}}} \right)} = {\exp \left( {- \frac{K^{2}}{1 + r_{12}}} \right)}}},{{{when}\mspace{14mu} \eta_{1}} = {\eta_{2} = {\pm 1}}},} & \left( {2.12b} \right)\end{matrix}$

Equation (2.12a) shows that, when the correlation coefficient r₁₂increases, the “distance squared” decreases and the JPD increases.Geometrically, this behavior is depicted in FIG. 7.

When r₁₂ is zero, both p=exp(−K²), an example for Eq. (2.6).

When r₁₂ is 1,

${{p\left( {\eta_{1} = \eta_{2}} \right)} = {\exp \left( {{- \frac{1}{2}}K^{2}} \right)}},$

a special case of Eq. (2.4).

When r₁₂ approaches unity, p(η_(i)=−η₂) approaches zero, an example forEq. (2.8).

N=3 case. In the case of three performance targets, the correspondingmatrix can be written as

$\begin{matrix}{{R = \begin{pmatrix}1 & a & b \\a & 1 & c \\b & c & 1\end{pmatrix}},} & (2.13)\end{matrix}$

where we have to use a=r₁₂, b=r₁₃, c=r₂₃ to shorten the expressionsbelow. The inverse of the matrix R is

$\begin{matrix}{{R^{- 1} = {\frac{1}{\Delta}\begin{pmatrix}{1 - c^{2}} & {{bc} - a} & {{ac} - b} \\{{bc} - a} & {1 - b^{2}} & {{ab} - c} \\{{ac} - b} & {{ab} - c} & {1 - a^{2}}\end{pmatrix}}},} & (2.14)\end{matrix}$

where Δ is given in Eq. (1.13). The “distance squared” is thus

η^(T) ·R ⁻¹·η=Δ⁻¹[3−(a ² +b ² +c²)+2η₁η₂(bc−a)+2η₁η₃(ac−b)+2η₂η₃(ab−c)].   (2.15)

It has the following properties

$\begin{matrix}{{\eta^{T} \cdot R^{- 1} \cdot {\eta \left( {a,b,{c;{\eta_{1,}\eta_{2}}},\eta_{3}} \right)}} = {{\eta^{T} \cdot R^{- 1} \cdot {\eta \left( {a,b,{c;{- \eta_{1}}},{- \eta_{2}},{- \eta_{3}}} \right)}} = {{\eta^{T} \cdot R^{- 1} \cdot {\eta \left( {{- a},{- b},{c;{- \eta_{1}}},\eta_{2},\eta_{3}} \right)}} = {{\eta^{T} \cdot R^{- 1} \cdot {\eta \left( {{- a},{- b},{c;\eta_{1}},{- \eta_{2}},{- \eta_{3}}} \right)}} = {{\eta^{T} \cdot R^{- 1} \cdot {\eta \left( {{- a},b,{{- c};\eta_{1}},\eta_{2},\eta_{3}} \right)}} = {{\eta^{T} \cdot R^{- 1} \cdot {\eta \left( {{- a},b,{{- c};{- \eta_{1}}},{- \eta_{2}},{- \eta_{3}}} \right)}} = {{\eta^{T} \cdot R^{- 1} \cdot {\eta \left( {a,{- b},{{- c};\eta_{1}},\eta_{2},{- \eta_{3}}} \right)}} = {\eta^{T} \cdot R^{- 1} \cdot {{\eta \left( {a,{- b},{{- c};{- \eta_{1}}},{- \eta_{2}},\eta_{3}} \right)}.}}}}}}}}} & (2.16)\end{matrix}$

These are special cases of properties (2.2) and (2.3).

When a=b=c=0, we get η^(T)·R⁻¹·η=3, and thus,

${p = {\exp \left( {{- \frac{3}{2}}K^{2}} \right)}},$

independent of η_(i)'s value (either +1 or −1), an example of Eq. (2.6).

In a special case of all three correlation coefficients being equal(e.g., a “mismatch” case among device instances), the “distance squared”becomes

$\begin{matrix}{{{\eta^{T} \cdot R^{- 1} \cdot \eta} = \frac{{3\left( {1 + a} \right)} - {2{a\left( {{\eta_{1}\eta_{2}} + {\eta_{1}\eta_{3}} + {\eta_{2}\eta_{3}}} \right)}}}{\left( {1 + {2a}} \right)\left( {1 - a} \right)}},{a = {b = {c.}}}} & (2.17)\end{matrix}$

Various (eight) combinations of η_(i) (either +1 or −1) lead to only twosets of different values for the “distance squared”,

$\begin{matrix}{{{\eta^{T} \cdot R^{- 1} \cdot \eta} = \frac{3}{1 + {2a}}},{a = {b = c}},{\eta_{1} = {\eta_{2} = {\eta_{3} = {\pm 1}}}},} & \left( {2.18a} \right) \\{{{\eta^{T} \cdot R^{- 1} \cdot \eta} = \frac{3 + {5a}}{\left( {1 - a} \right)\left( {1 + {2a}} \right)}},{a = {b = c}},{{\eta_{1} + \eta_{2} + \eta_{3}} = {\pm 1.}}} & \left( {2.18b} \right)\end{matrix}$

When a=b=c=1,

${{p\left( {\eta_{1} = {\eta_{2} = \eta_{3}}} \right)} = {\exp \left( {{- \frac{1}{2}}K^{2}} \right)}},$

a special case of Eq. (2.4).

When a=b=c=1, p(η₁+η₂+η₃=±1)=0, an example for Eq. (2.8).

In another special case of b=0 (i.e., df₁ and df₃ are orthogonal to eachother) and a=c (i.e., the angle between df₁ and df₂ and the anglebetween df₂ and df₃ are the same), the “distance squared” becomes

$\begin{matrix}{{{\eta^{T} \cdot R^{- 1} \cdot \eta} = \frac{3 - {2a^{2}} + {2a^{2}\eta_{1}\eta_{3}} - {2a\; {\eta_{2}\left( {\eta_{1} + \eta_{3}} \right)}}}{1 - {2a^{2}}}},{b = 0},{a = {c.}}} & (2.19)\end{matrix}$

Various (eight) combinations of η_(i)(either +1 or −1) lead to onlythree sets of different values for the “distance squared”,

$\begin{matrix}{{{\eta^{T} \cdot R^{- 1} \cdot \eta} = \frac{3 - {4a}}{1 - {2a^{2}}}},{b = 0},{a = c},{\eta_{1} = {\eta_{2} = {\eta_{3} = {\pm 1}}}},} & \left( {2.20a} \right) \\{{{\eta^{T} \cdot R^{- 1} \cdot \eta} = \frac{3 + {4a}}{1 - {2a^{2}}}},{b = 0},{a = c},{\eta_{1} = {\eta_{2} = {\eta_{3} = {\pm 1}}}},} & \left( {2.20b} \right) \\{{{\eta^{T} \cdot R^{- 1} \cdot \eta} = {2 + \frac{1}{1 - {2a^{2}}}}},{b = 0},{a = c},{{\eta_{1} + \eta_{3}} = 0.}} & \left( {2.20c} \right)\end{matrix}$

We plot Eq. (2.20) in FIG. 8. i) Equation (2.20a) shows that, in theregion of a=c≦½, when the correlation coefficients a and c increase, the“distance squared” decreases, the same behavior as in the two targetcase [N=2, see Eq. (2.12a)]. ii) Equation (2.20a) illustrates that, inthe region of a=c≧½, when the correlation coefficients a and c increase,however, the “distance squared” increases and goes to infinity rapidlywhen a=c approaches 1. This behavior is opposite to the familiarbehavior of two-target case [N=2, see Eq. (2.12a)]. We explain thischanging behavior in FIG. 9.

In still another special case of equal η_(i)'s, the “distance squared”simplifies to

η^(T) ·R ⁻¹·η=Δ⁻¹[3+2(ab+ac+bc)−(a ² +b ² +c ²)−2(a+b+c)], η₁=η₂=η₃=±1.  (2.21)

We examine two situations in detail.

One situation is b=0, which leads to

$\begin{matrix}{{{\eta^{T} \cdot R^{- 1} \cdot \eta} = \frac{3 - {2\left( {a + c} \right)} - \left( {a - c} \right)^{2}}{1 - \left( {a^{2} + c^{2}} \right)}},{\eta_{1} = {\eta_{2} = {\eta_{3} \pm 1}}},{b = 0.}} & (2.22)\end{matrix}$

We plot several contours of “distance squared” in FIG. 10. It also showsthe counter-intuitive behavior exhibited in Eq. (2.20) [FIG. 8]. For afixed c value, when a increases, the “distance squared” first decreasesbut then increases. Similarly, for a fixed a value, when c increases,the “distance squared” first decreases but then increases.

The other situation is a=c, for which

$\begin{matrix}{{{\eta^{T} \cdot R^{- 1} \cdot \eta} = \frac{3 + {4{ab}} - b^{2} - {4a} - {2b}}{\left( {1 - b} \right)\left( {1 + b - {2a^{2}}} \right)}},{\eta_{1} = {\eta_{2} = {\eta_{3} \pm 1}}},{a = {c.}}} & (2.23)\end{matrix}$

We plot the “distance squared” vs. a for several fixed values of b inFIG. 11. FIG. 11 shows that, for a fixed b value, the “distance squared”first decreases but then increases. FIG. 11 further shows that, evenwhen a, b, and/or c are very close to +1, the “distance squared” canbecome very large, leading to a very low value of JPD p.

Our criterion to judge whether there exists a suitable common corner iswhether

p≧p_(th). (2.24)

When p≧p_(th), there exist one or more suitable common corners (from theview of large enough JPD). When p<p_(th), there is no suitable commoncorner. In other words, a common corner having p≧p_(th) can be asuitable common corner (at least from the view of the JPD), and a commoncorner having p<p_(th) is not a desirable/suitable corner.

Other similar criteria are also possible, such as (2.24) plus eachstatistical model parameters must be within its K-σ tolerance range(|u_(j)|≦K). Other examples for a threshold value could be

$\begin{matrix}{{{p_{th}(N)} = {\exp \left( {{- \frac{1}{2}}{f(N)}K^{2}} \right)}},} & (2.25)\end{matrix}$

where f(N) is a proper monotonic increasing function of N.

When all choices between the lower and upper bounds for all N targetsare specified, all η_(i)'s are known and fixed, and the value of the JPDp is unique.

When p<p_(th), there is no suitable common corner, at least from theview point of JPD. Our method of corner model solution is to find acommon corner for a subset of N original targets.

The first step of this process is to find a suitable common corner for aset of (N−1) targets. There are N sets of (N−1) targets. We repeat Eqs.(2.1) and (2.6) for the set of (N−1) targets. [Changing N in Eq. (2.6)to (N−1).]

If two or more sets have suitable common corner, we choose a set whichhas the minimum “distance squared”.

If there is still no suitable common corner solution for any set of(N−1) targets, we go on to find a suitable common corner for a set of(N−2) targets. There are N(N−1) sets of (N−2) targets. We repeat thisprocess until we find a subset of targets for which there exists asuitable common corner.

If there is no suitable common corner solution for even two targets,then we find two separate suitable corners, one for each target. This isalways possible.

If the task is to find a single suitable common corner model for thegiven N targets or one of its largest subset, then we have by nowidentified a subset of targets for which there exists a suitable commoncorner.

If the task is to find one or more suitable common corner models for allN targets, then we go to find a second common corner for the rest oftargets not covered by the first common corner. And repeat this processuntil all N targets are covered.

When the task is to build a set of corner models to cover both thelower- and upper-bound corners of I performance targets, there are N=2Iperformance corners to cover. In this case, we have the freedom tochoose the combination of one target's lower-bound corner with anothertarget's either lower- or upper-bound corner. We first decide whichcombination of lower- and upper-bound corners of I targets will give asuitable common corner.

Choosing different values of η_(i)(+1 or −1), the normalized JPD p willhave different values. There are 2^(N) combinations for η₁, η₂, . . . ,η_(N). There are 2^(N−1) different values for the normalized JPD p.First, we search a set of η_(i)(+1 or −1) that has the large p valueamong all combinations of η₁, η₂, . . . , η_(N). Next, we check whetherthis p value satisfies the criterion Eq. (2.24). Then, we proceedforward using the method discussed above.

In the N=2 example above, when the pair of targets are positivelycorrelated (r₁₂>0), we find that p(η₁=η₂)>p(η₁=η₂), and a common cornershould be constructed from η₁=η₂=1 and another common corner fromη₁=η₂=−1. When the pair of targets are negatively correlated (r₁₂<0), werealize that p(η₁=−η₂)>p(η₁=η₂). In this case, a common corner should beconstructed from η₁=η₂=1 and another common corner from η₁=−η₂=−1 [seeFIG. 12].

An N=3 example of r₁₃=0 and r₁₂=r₂₃ [see Eqs. (2.20) and FIG. 8]. Whenr₁₂=r₂₃ >0, we find that a common corner should be constructed fromη₁=η₂=η₃=1 and another common corner from η₁=η₂=η₃=−1. When r₁₂=r₂₃<0, acommon corner should be constructed from η₁=−η₂=1 and another commoncorner from η₁=−η₂=η₃=−1.

After determining for which set of targets to construct a common cornermodel and determining the selection of the lower- or upper-bound cornerfor each target, then we proceed to find a specific solution of thecommon corner using the method as summarized below. When it is possible,we re-cast the solutions in the invention in the form of vectors andmatrices.

Discussed below is a preferred procedure to identify a subset ofindependent statistical model parameters among all statistical modelparameters. Each independent statistical model parameter in the subsetaffects one or more performance targets under study. Let the number ofindependent statistical model parameters in the subset be M, andparameter names are denoted by x₁, x₂, . . . , x_(M). Let the nominalvalue and the standard deviation of the jth statistical model parameterbe x_(j0) and σ_(j)(j=1, 2, . . . , M), respectively. We first introduceM normalized statistical model parameters,

u _(j)=(x _(j) −x _(j0))σ_(j) , j=1, 2, . . . , M.   (3.1)

Each of them is a dimensionless quantity. Collectively, they span anM-dimensional space. We next introduce a vector u=(u₁, u₂, . . . ,u_(M))_(T) in the M-dimensional space to represent the M normalizedstatistical model parameters collectively.

For each performance target F_(i), construct its linear representationin terms of M statistical model parameters (x₁,x₂, . . . ,x_(M)) aroundthe normal point (x₁₀,x₂₀, . . . ,x_(M0)),

$\begin{matrix}{\begin{matrix}{{F_{i}\left( {x_{1},x_{2},\ldots \mspace{14mu},x_{M}} \right)} = {F_{i\; 0} + {\sum\limits_{j = 1}^{M}\; {a_{ij}\left( {x_{j} - x_{j\; 0}} \right)}}}} \\{{= {F_{i\; 0} + {\sum\limits_{j = 1}^{M}\; {a_{ij}\sigma_{j}u_{j}}}}},}\end{matrix}{{i = 1},2,\ldots \mspace{14mu},N,}} & (3.2)\end{matrix}$

where

F _(i0) ≡F _(i)(x ₁₀, x₂₀, . . . , x_(M0)), i=1, 2, . . . , N,   (3.3)

are nominal performance targets.

The linear coefficients a in Eq. (3.2) can be found by sensitivityanalyses,

a _(ij) =[F _(i)(x ₁₀ , x ₂₀ , . . . , x _(j0)+nσ_(j) , . . . , x_(M0))−F _(i0)]/(nσ _(j)), i=1,2, . . . , N, j=1, 2, . . . , M,   (3.4)

where n can be 1, −1, 2, −2, 3, −3, or many other discrete values. Eachlinear/sensitivity coefficient a_(ij) could be positive, zero, ornegative.

Under the linear representation (3.2), the standard deviation of thei^(th) performance target is found to be

$\begin{matrix}{{S_{i} = {\sqrt{{\langle F_{i}^{2}\rangle} - {\langle F_{i}\rangle}^{2}} = \sqrt{\sum\limits_{j = 1}^{M}\; {a_{ij}^{2}\sigma_{j}^{2}}}}},{i = 1},2,\ldots \mspace{14mu},{N.}} & (3.5)\end{matrix}$

Introduce a set of normalized sensitivities,

$\begin{matrix}{{\alpha_{ij} = \frac{a_{ij}\sigma_{j}}{S_{i}}},{i = 1},2,\ldots \mspace{14mu},N,{j = 1},2,\ldots \mspace{14mu},{M.}} & (3.6)\end{matrix}$

Further introduce a set of vectors a_(i)=(a_(i1), a_(i2), . . . ,a_(iM))^(T) in the M-dimensional space. Using Eq. (3.5), we find that

$\begin{matrix}{{{\alpha_{i}}^{2} = {{\alpha_{i}^{T} \cdot \alpha_{i}} = {{\sum\limits_{j = 1}^{M}\; \alpha_{ij}^{2}} = 1}}},{i = 1},2,\ldots \mspace{14mu},{N.}} & (3.7)\end{matrix}$

Namely, the length of each vector a_(i) is 1, |a_(i)|=1.

Using Eq. (3.6), the normalized variation (1.5) for each performancetarget F_(i) becomes

$\begin{matrix}{{{df}_{i} = {\sum\limits_{j = 1}^{M}\; {\alpha_{ij}u_{j}}}},{i = 1},2,\ldots \mspace{14mu},{N.}} & (3.8)\end{matrix}$

The K-σ corner conditions for N performance targets are

$\begin{matrix}{{{\sum\limits_{j = 1}^{M}\; {\alpha_{ij}u_{j}}} = {K\; \eta_{i}}},{i = 1},2,\ldots \mspace{14mu},{N.}} & (3.9)\end{matrix}$

We introduce an N×M matrix for normalized linear sensitivities,

$\begin{matrix}{A = {\begin{pmatrix}\alpha_{11} & \alpha_{12} & \cdots & \alpha_{1M} \\\alpha_{21} & a_{22} & \cdots & \alpha_{2M} \\{\vdots`} & \vdots & \ddots & \vdots \\\alpha_{N\; 1} & \alpha_{N\; 2} & \cdots & \alpha_{NM}\end{pmatrix} = {\begin{pmatrix}\alpha_{1}^{T} \\\alpha_{2}^{T} \\\vdots \\\alpha_{N}^{T}\end{pmatrix}.}}} & (3.10)\end{matrix}$

We can now write N linear algebraic equations (3.9) for the Nperformance targets' corner conditions in a matrix form,

A·u=kη.   (3.11)

Making use of Eqs. (1.8) and (3.8), the linear correlation coefficient(1.1) between the i^(th) and k^(th) targets is related to thecorresponding normalized sensitivities,

$\begin{matrix}{{r_{ik} = {{\sum\limits_{j = 1}^{M}\; {\alpha_{ij}\alpha_{kj}}} = {\alpha_{i}^{T} \cdot \alpha_{k}}}},i,{k = 1},2,\ldots \mspace{14mu},{N.}} & (3.12)\end{matrix}$

We can re-write relation (3.12) in a matrix form,

R=A·A ^(T).   (3.13)

Based on property (3.7), each diagonal coefficient (self correlationcoefficient) is unity, r_(ii)=1, as expected.

N=M case. When N=M, Eqs. (3.11) contain N linear algebraic equations forM=N unknowns, u=(u₁, u₂, . . . , u_(N)), which can be solved exactly andstraightforwardly. Using the matrix formalism, the solution for Eq.(3.11) is

u=KA ⁻¹·η,   (3.14)

which provides a common corner for the N performance targetssimultaneously. Corresponding normalized JPD equals the value in Eq.(2.1),

$\begin{matrix}{p = {{\exp \left( {{- \frac{1}{2}}{u^{T} \cdot u}} \right)} = {{\exp \left( {{- \frac{1}{2}}K^{2}{\eta^{T} \cdot R^{- 1} \cdot \eta}} \right)}.}}} & (3.15)\end{matrix}$

N<M case. When the number of equations, M, is smaller than the number ofstatistical model parameters, N, there are infinite sets of solutions(i.e., common corners). Among those sets of solutions, there is a set ofoptimal solution. The optimal solution is found by maximizing the jointprobability density under the restriction of Eq. (3.11), i.e., byminimizing (the square of) the distance to the nominal point, Σu_(j) ²,under the restriction of Eq. (3.11). In the matrix form, the common andoptimal corner solution is

u=KA ^(T) ·R ⁻¹·η.   (3.16)

Corresponding normalized JPD also equals the value in Eq. (2.1).

When N=M, the matrix A becomes a square matrix and solution (3.16) forN<M reduces to solution (3.14). In other words, solution (3.16) is alsovalid for N=M.

For example, FIG. 13 and the following discussion provide a briefgeneral description of a suitable computing environment in which theinvention may be implemented. While a general-purpose computer isdescribed below, this is but one example, the present invention may beimplemented in an environment of networked hosted services in which verylittle or minimal client resources are implicated, e.g., a networkedenvironment in which the client device serves merely as a browser orinterface to the World Wide Web. It should also be understood thathandheld, portable, and other computing devices of all kinds arecontemplated for use in connection with the present invention.

Although not required, the invention can be implemented via anapplication-programming interface (API), for use by a developer, and/orincluded within the network browsing software, which will be describedin the general context of computer-executable instructions, such asprogram modules, being executed by one or more computers, such as clientworkstations, servers, or other devices. Generally, program modulesinclude routines, programs, objects, components, data structures and thelike that perform particular tasks or implement particular abstract datatypes. Typically, the functionality of the program modules may becombined or distributed as desired in various embodiments. Moreover,those skilled in the art will appreciate that the invention may bepracticed with other computer system configurations.

Other well known computing systems, environments, and/or configurationsthat may be suitable for use with the invention include, but are notlimited to, personal computers (PCs), server computers, hand-held orlaptop devices, multi-processor systems, microprocessor-based systems,programmable consumer electronics, network PCs, minicomputers, mainframecomputers, and the like. The invention may also be practiced indistributed computing environments where tasks are performed by remoteprocessing devices that are linked through a communications network orother data transmission medium. In a distributed computing environment,program modules may be located in both local and remote computer storagemedia including memory storage devices.

FIG. 13, thus, illustrates an example of a suitable computing systemenvironment 100 in which the invention may be implemented, although asmade clear above, the computing system environment 100 is only oneexample of a suitable computing environment and is not intended tosuggest any limitation as to the scope of use or functionality of theinvention. Neither should the computing environment 100 be interpretedas having any dependency or requirement relating to any one orcombination of components illustrated in the exemplary operatingenvironment 100.

With reference to FIG. 13, an exemplary system for implementing theinvention includes a general purpose-computing device in the form of acomputer 110. Components of computer 110 may include, but are notlimited to, a processing unit 120, a system memory 130, and a system bus121 that couples various system components including the system memoryto the processing unit 120. The system bus 121 may be any of severaltypes of bus structures including a memory bus or memory controller, aperipheral bus, and a local bus using any of a variety of busarchitectures. By way of example, and not limitation, such architecturesinclude Industry Standard Architecture (ISA) bus, Micro ChannelArchitecture (MCA) bus, Enhanced ISA (EISA) bus, Video ElectronicsStandards Association (VESA) local bus, and Peripheral ComponentInterconnect (PCI) bus (also known as Mezzanine bus).

Computer 110 typically includes a variety of computer readable media.Computer readable media can be any available media that can be accessedby computer 110 and includes both volatile and nonvolatile media,removable and non-removable media. By way of example, and notlimitation, computer readable media may comprise computer storage mediaand communication media. Computer storage media includes volatile andnonvolatile, removable and non-removable media implemented in any methodor technology for storage of information such as computer readableinstructions, data structures, program modules or other data. Computerstorage media includes, but is not limited to, RAM, ROM, EEPROM, flashmemory or other memory technology, CDROM, digital versatile disks (DVD)or other optical disk storage, magnetic cassettes, magnetic tape,magnetic disk storage or other magnetic storage devices, or any othermedium which can be used to store the desired information and which canbe accessed by computer 110.

Communication media typically embodies computer readable instructions,data structures, program modules or other data in a modulated datasignal such as a carrier wave or other transport mechanism and includesany information delivery media. The term “modulated data signal” means asignal that has one or more of its characteristics set or changed insuch a manner as to encode information in the signal. By way of example,and not limitation, communication media includes wired media such as awired network or direct-wired connection, and wireless media such asacoustic, RF, infrared, and other wireless media. Combinations of any ofthe above should also be included within the scope of computer readablemedia.

The system memory 130 includes computer storage media in the form ofvolatile and/or nonvolatile memory such as read only memory (ROM) 131and random access memory (RAM) 132. A basic input/output system 133(BIOS), containing the basic routines that help to transfer informationbetween elements within computer 110, such as during start-up, istypically stored in ROM 131. RAM 132 typically contains data and/orprogram modules that are immediately accessible to and/or presentlybeing operated on by processing unit 120. By way of example, and notlimitation, FIGS. 4-6 illustrate operating system 134, applicationprograms 135, other program modules 136, and program data 137.

The computer 110 may also include other removable/non-removable,volatile/nonvolatile computer storage media. By way of example only,FIGS. 4-6 illustrate a hard disk drive 141 that reads from or writes tonon-removable, nonvolatile magnetic media, a magnetic disk drive 151that reads from or writes to a removable, nonvolatile magnetic disk 152,and an optical disk drive 155 that reads from or writes to a removable,nonvolatile optical disk 156, such as a CD ROM or other optical media.Other removable/non-removable, volatile/nonvolatile computer storagemedia that can be used in the exemplary operating environment include,but are not limited to, magnetic tape cassettes, flash memory cards,digital versatile disks, digital video tape, solid state RAM, solidstate ROM, and the like. The hard disk drive 141 is typically connectedto the system bus 121 through a non-removable memory interface such asinterface 140, and magnetic disk drive 151 and optical disk drive 155are typically connected to the system bus 121 by a removable memoryinterface, such as interface 150.

The drives and their associated computer storage media discussed aboveand illustrated in FIG. 6 provide storage of computer readableinstructions, data structures, program modules and other data for thecomputer 110. In FIG. 2, for example, hard disk drive 141 is illustratedas storing operating system 144, application programs 145, other programmodules 146, and program data 147. Note that these components can eitherbe the same as or different from operating system 134, applicationprograms 135, other program modules 136, and program data 137. Operatingsystem 144, application programs 145, other program modules 146, andprogram data 147 are given different numbers here to illustrate that, ata minimum, they are different copies.

A user may enter commands and information into the computer 110 throughinput devices such as a keyboard 162 and pointing device 161, commonlyreferred to as a mouse, trackball or touch pad. Other input devices (notshown) may include a microphone, joystick, game pad, satellite dish,scanner, or the like. These and other input devices are often connectedto the processing unit 120 through a user input interface 160 that iscoupled to the system bus 121, but may be connected by other interfaceand bus structures, such as a parallel port, game port or a universalserial bus (USB).

A monitor 191 or other type of display device is also connected to thesystem bus 121 via an interface, such as a video interface 190. Agraphics interface 182, such as Northbridge, may also be connected tothe system bus 121. Northbridge is a chipset that communicates with theCPU, or host-processing unit 120, and assumes responsibility foraccelerated graphics port (AGP) communications. One or more graphicsprocessing units (GPUs) 684 may communicate with graphics interface 182.In this regard, GPUs 184 generally include on-chip memory storage, suchas register storage and GPUs 184 communicate with a video memory 186.GPUs 184, however, are but one example of a coprocessor and thus avariety of co-processing devices may be included in computer 110. Amonitor 191 or other type of display device is also connected to thesystem bus 121 via an interface, such as a video interface 190, whichmay in turn communicate with video memory 186. In addition to monitor691, computers may also include other peripheral output devices such asspeakers 197 and printer 196, which may be connected through an outputperipheral interface 195.

The computer 110 may operate in a networked environment using logicalconnections to one or more remote computers, such as a remote computer180. The remote computer 180 may be a personal computer, a server, arouter, a network PC, a peer device or other common network node, andtypically includes many or all of the elements described above relativeto the computer 110, although only a memory storage device 181 has beenillustrated in FIG. 13. The logical connections depicted in FIG. 13include a local area network (LAN) 171 and a wide area network (WAN)173, but may also include other networks. Such networking environmentsare commonplace in offices, enterprise-wide computer networks, intranetsand the Internet.

When used in a LAN networking environment, the computer 110 is connectedto the LAN 171 through a network interface or adapter 170. When used ina WAN networking environment, the computer 110 typically includes amodem 172 or other means for establishing communications over the WAN173, such as the Internet. The modem 172, which may be internal orexternal, may be connected to the system bus 121 via the user inputinterface 160, or other appropriate mechanism. In a networkedenvironment, program modules depicted relative to the computer 110, orportions thereof, may be stored in the remote memory storage device. Byway of example, and not limitation, FIG. 13 illustrates remoteapplication programs 185 as residing on memory device 181. It will beappreciated that the network connections shown are exemplary and othermeans of establishing a communications link between the computers may beused.

One of ordinary skill in the art can appreciate that a computer 110 orother client device can be deployed as part of a computer network. Inthis regard, the present invention pertains to any computer systemhaving any number of memory or storage units, and any number ofapplications and processes occurring across any number of storage unitsor volumes. The present invention may apply to an environment withserver computers and client computers deployed in a network environment,having remote or local storage. The present invention may also apply toa standalone computing device, having programming languagefunctionality, interpretation and execution capabilities.

As will be readily apparent to those skilled in the art, the presentinvention can be realized in hardware, software, or a combination ofhardware and software. Any kind of computer/server system(s)—or otherapparatus adapted for carrying out the methods described herein—issuited. A typical combination of hardware and software could be ageneral-purpose computer system with a computer program that, whenloaded and executed, carries out the respective methods describedherein. Alternatively, a specific use computer, containing specializedhardware for carrying out one or more of the functional tasks of theinvention, could be utilized.

The present invention, or aspects of the invention, can also be embodiedin a computer program product, which comprises all the respectivefeatures enabling the implementation of the methods described herein,and which—when loaded in a computer system—is able to carry out thesemethods. Computer program, software program, program, or software, inthe present context mean any expression, in any language, code ornotation, of a set of instructions intended to cause a system having aninformation processing capability to perform a particular functioneither directly or after either or both of the following: (a) conversionto another language, code or notation; and/or (b) reproduction in adifferent material form.

While it is apparent that the invention herein disclosed is wellcalculated to fulfill the objects stated above, it will be appreciatedthat numerous modifications and embodiments may be devised by thoseskilled in the art, and it is intended that the appended claims coverall such modifications and embodiments as fall within the true spiritand scope of the present invention.

1. A method of constructing corner models for multiple performancetargets for circuit simulations, comprising: identifying N(N≧2) deviceand/or circuit performance targets F₁, F₂, . . . , F_(N), and obtainingtheir correlation matrix R_(N×N) using Monte Carlo simulations,analyzing measured hardware data, or using the linear sensitivities ofthe N targets on M statistical model parameters; establishing aformalism of calculating a normalized joint probability density (JPD);setting a set of threshold values for normalized joint probabilitydensities; determining the smallest number (J) of corner models neededto represent K-σ lower or upper bounds of the N performance targets and,for each of J corner models, determining for which performance targetsit represents; and constructing an optimal common corner solution foreach of J corner models by maximizing a JPD among all possible commoncorner solutions for that corner.
 2. A method according to claim 1,wherein establishing a formalism of calculating a normalized jointprobability density comprises setting the value of the parameter K (say,K=3 for 3σ performance corners), for the i^(th) of the N performancetargets, setting η_(i)=+1 for its K-σ upper performance corner andη_(i)=−1 for its K-σ lower performance corner, and using the formalism${p(N)} = {\exp \left( {{- \frac{1}{2}}K^{2}{\eta_{N}^{T} \cdot R_{N \times N}^{- 1} \cdot \eta_{N}}} \right)}$to calculate a normalized joint probability density, where η_(N)=(η₁,η₂, . . . , η_(N))^(T) is an N-component vector.
 3. A method accordingto claim 1, wherein setting a set of threshold values for normalizedjoint probability densities comprises setting${{p_{th}(N)} = {\exp \left( {{- \frac{1}{2}}{f(N)}K^{2}} \right)}},$where f(N) is a proper monotonic increasing function of N. An embodimentof f(N) is f(N)=N.
 4. A method according to claim 1, wherein determiningthe smallest number (J) of corner models needed to represent K-σ lowerand/or upper bounds of the N performance targets comprises classifyingthe corner model task into multiple (three) cases based on whether boththe lower and upper performance corners, wherein both η_(i)=+1 andη_(i)=−1 performance corners, are to be represented in corner models orjust one of them, wherein either η_(i)=+1 or η_(i)=−1 performancecorner, is to be represented in one or more corner models, and base onwhether the corner model task is to find a single corner model torepresent as many performance targets as possible or to use a set ofcorner models to represent all N performance targets.
 5. A methodaccording to claim 4, in the case of only either lower or upperperformance corner be represented, wherein, in the case of η_(i), . . ., η_(N) values being already set, and the corner model task is to find asingle corner model to represent as many targets as possible, comprisingtesting whetherp(N)≧p _(th)(N) is satisfied or not, and if it is not satisfied, furthercomprises finding a largest set of I targets which has highest p(I)among C_(N) ^(I)=N!/[(N−I)!I!] combination of I targets and alsosatisfies p(I)≧p_(th)(I), by trying I=N−1 first, if still not possible,then try I=N−2, N−3, . . . .
 6. A method according to claim 4, in thecase of only either lower or upper performance corner is represented,and the corner model task is to use a set of corner models to representall N performance targets, wherein the step of determining the smallestnumber (J) of corner models needed further comprises a step of findingthe smallest number (J) of corners which can cover all N targetscollectively, and further comprises finding a best allocation of Ntargets into J groups (n₁+n₂+ . . . +n_(J)=N) and havingp(I_(j))≧p_(th)(I_(j)) for each group (j=1, 2, . . . , N),
 7. A methodaccording to claim 4, in the case of both the lower and upperperformance corners, wherein both η_(i)=+1 and η_(i)=−1 performancecorners, needing to be represented by a set of corner models, whereinthe step of determining for which performance targets a corner modelrepresents comprises first searching and finding the largest p(N) among2^(N−1) combinations: η₁=1, η₂=±1, . . . , η_(N)=±1 and selecting thecorresponding as (η₁, η₂, . . . , η_(N))=(1, {tilde over (η)}₂, . . . ,{tilde over (η)}_(N)).
 8. A method according to claim 7, in the case ofboth the lower and upper performance corners (i.e., both η_(i)=+1 andη_(i)=−1 performance corners) needing to be represented by a set ofcorner models, wherein the step of determining for which performancetargets a corner model represents further comprises using the method ofclaims 5 and 6 to find the smallest number (J) of corner models neededand, for each of J corner models, determining for which performancetargets it represents for (1, {tilde over (η)}₂, . . . , {tilde over(η)}_(N)), satisfying n₁+n₂+ . . . +n_(j)=N.
 9. A method according toclaim 8, in the case of both the lower and upper performance corners,wherein both η_(i)=+1 and η_(i)=−1 performance corners, needing to berepresented by a set of corner models, after the step of finding thedivision of N performance targets (1, {tilde over (η)}₂, . . . , {tildeover (η)}_(N)) into J sub-groups satisfying n₁+n₂+ . . . +n_(J)=N,further comprises mapping or dividing N performance targets (−1, −{tildeover (η)}₂, . . . , −{tilde over (η)}_(N)) into similar J sub-groupswhile still satisfying n₁+n₂+ . . . +n_(J)=N.
 10. A method according toclaim 1, wherein constructing an optimal common corner solution for eachof J corner models (n₁+n₂+ . . . +n_(J)=N) comprises maximizing a JPDamong all possible common corner solutions for that corner subject toinvolved n_(j) corner conditions, and optionally further comprises,after obtaining a corner solution for a combination (η₁, η₂, . . . ,η_(N)), reversing its skewing and using it as the corresponding cornersolution for an opposite combination (−η₁, −η₂, . . . , −η_(N)).
 11. Asystem for constructing corner models for multiple performance targetsfor circuit simulations, the system comprising one or more processingunits configured for: identifying N(N≧2) device and/or circuitperformance targets F₁, F₂, . . . , F_(N), and obtaining theircorrelation matrix R using Monte Carlo simulations, analyzing measuredhardware data, or using the linear sensitivities of the N targets on Mstatistical model parameters; establishing a formalism of calculating anormalized joint probability density (JPD); setting a set of thresholdvalues for normalized joint probability densities; determining thesmallest number (J) of corner models needed to represent K-σ lower orupper bounds of the N performance targets and, for each of J cornermodels, determining for which performance targets it represents; andconstructing an optimal common corner solution for each of J cornermodels by maximizing a JPD among all possible common corner solutionsfor that corner.
 12. A system according to claim 11, whereinestablishing a formalism of calculating a normalized joint probabilitydensity comprises setting the value of the parameter K (say, K=3 for 3σperformance corners), for the i^(th) of the N performance targets,setting η_(i)=+1 for its K-σ upper performance corner and η_(i)=−1 forits K-σ lower performance corner, and using the formalism${p(N)} = {\exp \left( {{- \frac{1}{2}}K^{2}{\eta_{N}^{T} \cdot R_{N \times N}^{- 1} \cdot \eta_{N}}} \right)}$to calculate a normalized joint probability density, where =(η₁, η₂, . .. , η_(N))^(T) is an N-component vector.
 13. A system according to claim11, wherein setting a set of threshold values for normalized jointprobability densities comprises setting${{p_{th}(N)} = {\exp \left( {{- \frac{1}{2}}{f(N)}K^{2}} \right)}},$where f(N) is a proper monotonic increasing function of N. An embodimentof f(N) is f(N)=N.
 14. A system according to claim 11, whereindetermining the smallest number (J) of corner models needed to representK-σ lower and/or upper bounds of the N performance targets comprisesclassifying the corner model task into multiple (three) cases based onwhether both the lower and upper performance corners, wherein bothη_(i)=+1 and η_(i)=−1 performance corners, are to be represented incorner models or just one of them, wherein either η_(i)=+1 or η_(i)=−1performance corner, is to be represented in one or more corner models,and base on whether the corner model task is to find a single cornermodel to represent as many performance targets as possible or to use aset of corner models to represent all N performance targets.
 15. Asystem according to claim 11, wherein constructing an optimal commoncorner solution for each of J corner models (n₁+n₂+ . . . +n_(J)=N)comprises maximizing a JPD among all possible common corner solutionsfor that corner subject to involved n_(i) corner conditions, andoptionally further comprises, after obtaining a corner solution for acombination (η₁, η₂, . . . , η_(N)), reversing its skewing and using itas the corresponding corner solution for an opposite combination (−η₁,−η₂, . . . , −η_(N)).
 16. An article of manufacture comprising: at leastone computer usable medium having computer readable program code logicto execute a machine instruction in a processing unit for constructingcorner models for multiple performance targets for circuit simulation,said computer readable program code logic, when executing, performingthe following: identifying N(N≧2) device and/or circuit performancetargets F₁, F₂, . . . , F_(N), and obtaining their correlation matrixR_(N×N) using Monte Carlo simulations, analyzing measured hardware data,or using the linear sensitivities of the N targets on M statisticalmodel parameters; establishing a formalism of calculating a normalizedjoint probability density (JPD); setting a set of threshold values fornormalized joint probability densities; determining the smallest number(J) of corner models needed to represent K-σ lower or upper bounds ofthe N performance targets and, for each of J corner models, determiningfor which performance targets it represents; and constructing an optimalcommon corner solution for each of J corner models by maximizing a JPDamong all possible common corner solutions for that corner.
 17. Anarticle of manufacture according to claim 16, wherein establishing aformalism of calculating a normalized joint probability densitycomprises setting the value of the parameter K (say, K=3 for 3σperformance corners), for the i^(th) of the N performance targets,setting η_(i)=+1 for its K-σ upper performance corner and η_(i)=−1 forits K-σ lower performance corner, and using the formalism${p(N)} = {\exp \left( {{- \frac{1}{2}}K^{2}{\eta_{N}^{T} \cdot R_{N \times N}^{- 1} \cdot \eta_{N}}} \right)}$to calculate a normalized joint probability density, where η=(η₁, η₂, .. . , η_(N))^(T) is an N-component vector.
 18. An article ofmanufacturing according to claim 16, wherein setting a set of thresholdvalues for normalized joint probability densities comprises setting${{p_{th}(N)} = {\exp \left( {{- \frac{1}{2}}{f(N)}K^{2}} \right)}},$where f(N) is a proper monotonic increasing function of N. An embodimentof f(N) is f(N)=N.
 19. An article of manufacture according to claim 16,wherein determining the smallest number (J) of corner models needed torepresent K-σ lower and/or upper bounds of the N performance targetscomprises classifying the corner model task into multiple (three) casesbased on whether both the lower and upper performance corners, whereinboth η₁=+1 and η_(i)=−1 performance corners, are to be represented incorner models or just one of them, wherein either η_(i)=+1 or η_(i)=−1performance corner, is to be represented in one or more corner models,and base on whether the corner model task is to find a single cornermodel to represent as many performance targets as possible or to use aset of corner models to represent all N performance targets.
 20. Anarticle of manufacture according to claim 16, wherein constructing anoptimal common corner solution for each of J corner models (n₁+n₂+ . . .+n_(J)=N) comprises maximizing a JPD among all possible common cornersolutions for that corner subject to involved n_(j) corner conditions,and optionally further comprises, after obtaining a corner solution fora combination (η₁, η₂, . . . , η_(N)), reversing its skewing and usingit as the corresponding corner solution for an opposite combination(−η₁, −η₂, . . . , −η_(N)).